package com.zwj.interview.双指针;

/**
 * @Author: Zwj
 * @Date: 2022/9/19 23:01
 * LC80
 * 给你一个有序数组 nums ，请你 原地 删除重复出现的元素，使得出现次数超过两次的元素只出现两次 ，返回删除后数组的新长度
 *
 * 输入：nums = [1,1,1,2,2,3]
 * 输出：5, nums = [1,1,2,2,3]
 */
public class 删除有序数组中的重复项II {

    public int removeDuplicates(int[] nums) {
          if(nums.length==0){
              return 0;
          }
          int start=2;
          for(int i=2;i<nums.length;i++){
              if(nums[i]!=nums[start-2]){
                 nums[start]=nums[i];
                 start++;
              }
          }
          return start;
    }


    public int removeDuplicates2(int[] nums) {
        //因为删掉重复元素还要保证有2个，因此我们下标就从第三个元素开始，也就是start=2开始
        if(nums.length==0){
            return 0;
        }
        int start=2;
        for(int i=2;i<nums.length;i++){
            if(nums[i]!=nums[start-2]){
              nums[start]=nums[i];
              start++;
            }
        }
        return start;
    }
}